package dao;

import java.sql.ResultSet;
import java.sql.SQLException;

import entity.ConceptoBD;
import entity.ConceptoNumCortoBD;
import entity.ConceptoServicioBD;
import fachade.PrincipalFachade;

public class ConceptoDAO extends DAO{

	public ConceptoBD getConceptoById(int idConcepto) {
		ResultSet rs = super.getObjectById("concepto", "id_concepto", idConcepto);
		ConceptoBD conceptoBD = null;
		try {
			if(rs.next()){
				if(rs.getString("tipo").equalsIgnoreCase("numero_corto")){
					conceptoBD = new ConceptoNumCortoBD();
					conceptoBD.setEmpresaBD(new EmpresaDAO().getEmpresaById(rs.getInt("id_empresa")));
				}
				else if(rs.getString("tipo").equalsIgnoreCase("servicio")){
					conceptoBD = new ConceptoServicioBD();
				} else {
					System.out.println("ERROR: En concepto adicional no es del tipo numero_corto, ni servicio. Revisar contenido tabla concepto");
				}
				if(conceptoBD != null){
					conceptoBD.setCodigo_concepto(rs.getString("codigo_concepto"));
					conceptoBD.setDescripcion(rs.getString("descripcion"));
					conceptoBD.setId_concepto(idConcepto);
					conceptoBD.setTipo(rs.getString("tipo"));
					conceptoBD.setPrecioBD(PrincipalFachade.getInstance().getiConceptosFachade().getPrecioConceptoById(conceptoBD.getId_concepto()));
				}
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conceptoBD;
	}

}
